// 高阶函数 作为参数
function forEach (array, fn) {
    for (let i = 0; i < array.length; i++) {
        fn(array[i]) // 这里进行了回调 函数作为参数返回
    }
}

// 测试
let arr = [1, 2, 3, 4, 5, 6, 7]
forEach(arr,  item => console.log(item)) // 1 2 3 4 5 6 7

//filter 函数作为条件
function filter(array, fn) {
  let res = []
  for (let i = 0; i < array.length; i++) { 
    if (fn(array[i])) { res.push(array[i]) } // 如果满足条件 储存
  }
  return res
}

// 测试
const newArr = filter(arr, num => num % 2 === 0)
console.log(newArr) // [ 2, 4, 6 ]